package com.molichuxing.services.business.dto.response;

import com.molichuxing.framework.dto.ResponseRootDto;
import com.molichuxing.services.property.CarCheckTypeEnum;
import com.molichuxing.services.property.CarsTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 *
 * @author 
 * @since 2019-08-14
 */
@Data
public class CarCheckDto extends ResponseRootDto {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    private Integer id;

    /***
     * 订单号
     */
    private Long  orderCode;


    /***
     * 还车门店id
     */
    private Integer returnStoreId;

    /**
     * 车辆ID
     */
    @ApiModelProperty(value = "车辆id")
    private Integer carId;

    /**
     * 车辆类型（0：新车，1:二手车）
     */
    @ApiModelProperty(value = "车辆类型")
    private Integer carType;

    private String carTypeStr;

    public void setCarType(Integer carType) {
        this.carType = carType;
        if(null != carType) {
            this.carTypeStr = CarsTypeEnum.getName(carType);
        }
    }

    /**
     * 车架号
     */
    @ApiModelProperty(value = "车架号")
    private String vin;

    /**
     * 牌照号
     */
    @ApiModelProperty(value = "牌照号")
    private String licencePlate;

    /**
     * 车型id
     */
    @ApiModelProperty(value = "车型id")
    private Integer vehicleId;


    /**
     * 检验状态（1：待检验，2：待用户确认，3：待人工介入，4：已检验）
     */
    @ApiModelProperty(value = "检验状态")
    private Integer status;

    private String statusStr;

    /***
     * 车辆已经行驶总里程
     */
    @ApiModelProperty(value = "已经行驶总里程")
    private  Integer  totalMileage;

    /**
     * 公里数,已行驶里程数
     */
    private BigDecimal mileage;

    /**
     * 检验时间
     */
    @ApiModelProperty(value = "检验时间")
    private LocalDateTime checkTime;

    /**
     * 检验端（1：用户，2：经销商，3：茉莉）
     */
    private Integer checkClient;

    /**
     * 操作人名称
     */
    @ApiModelProperty(value = "操作人")
    private String opName;

    /**
     * 是否人工介入
     */
    @ApiModelProperty(value = "是否人工介入")
    private String artificialIntervention;

    /**
     * 检验类型(1:新车检验，2：PDI)
     */
    private Integer type;

    /**
     * 检验类型(1:新车检验，2：PDI)
     */
    private String typeStr;

    /**
     * 域路径
     */
    private String domainPath;

    /**
     * 文件相对路径
     */
    private String relativePath;

    /**
     * 质损费
     */
    private BigDecimal lossFee;

    /**
     * 质损说明
     */
    private String remark;

    public void setType(Integer type) {
        this.type = type;
        this.typeStr = CarCheckTypeEnum.getName(type);
    }
}
